package live.testdemo.bazi.service;

import com.nlf.calendar.Lunar;

import java.util.List;

import live.testdemo.bazi.common.domain.DayunLiunian;
import live.testdemo.bazi.dao.entry.EightCharWangDu;

/**
 * @author zhoujianxin
 * @Description: todo
 * @date 2021/5/29
 */
public interface BaziService {
    /**
     * 获取大运流年
     *
     * @param
     * @return
     * @description 获取大运流年
     * @date 2021/5/29 20:21
     * @author LucasZhou
     **/
    DayunLiunian getDayunLiunian(Lunar lunar);

    /**
     * 判断是否得令
     * @return a
     * @throws
     * @escription: 判断是否得令
     * @Param
     * @author zhoujianxin
     * @date 2021/5/29
     */
    boolean deling(Lunar lunar);

    /**
     * 判断是否得地。得地，即为在其余各地支中得长生，禄，羊刃，或者本气藏干。
     * @return a
     * @throws
     * @escription: 判断是否得地
     * @Param
     * @author zhoujianxin
     * @date 2021/5/29
     */
    boolean dedi(Lunar lunar);

    /**
     * 判断是否得势。势，即为比肩。
     * @param
     * @return
     * @description 判断是否得势
     * @date 2021/5/29 20:18
     * @author LucasZhou
     **/
    boolean deshi(Lunar lunar);

    /**
     * 判断是否得气。气，即为印。得气会判断地支是否有三合三会
     * @param
     * @return
     * @description 判断是否得气
     * @date 2021/5/29 20:19
     * @author LucasZhou
     **/
    boolean deqi(Lunar lunar);

    /**
     * 定格局
     * @param
     * @return
     * @description 定格局
     * @date 2021/5/29 20:19
     * @author LucasZhou
     **/
    Geju dingGeju(Lunar lunar);

    /**
     * 获取空亡
     * @param
     * @return
     * @description 获取空亡
     * @date 2021/5/29 20:19
     * @author LucasZhou
     **/
    List<String> getKongwang(Lunar lunar);

    /**
     * 获取墓库信息
     * @param
     * @return
     * @description 获取墓库信息
     * @date 2021/5/29 20:19
     * @author LucasZhou
     **/
    MukuInfo getMukuInfo(Lunar lunar);

    /**
     * 定旺衰
     * @param
     * @return
     * @description 定旺衰
     * @date 2021/5/29 20:20
     * @author LucasZhou
     **/
    boolean wangshuai(Lunar lunar);

    /**
     * 取喜用神
     * @param
     * @return
     * @description 取喜用神
     * @date 2021/5/29 20:20
     * @author LucasZhou
     **/
    Xiyong getXiyongShen(Lunar lunar);

    /**
     * 获取流年执事
     *
     * @param
     * @return
     * @date 2021/5/29 20:20
     * @author LucasZhou
     **/
    ZhiShi getZhishi(Lunar lunar);

    /**
     * 获取八字的旺度
     *
     * @param lunar
     * @return
     */
    EightCharWangDu getWangDu(Lunar lunar);
}
